In database management systems, a binary large object, also referred to as a blob, is a collection of binary data stored as a single entity. Typically, blobs may be images, audio, or other multimedia objects though occasionally they may be executable code as well. When discussing the performance of a database management system, reading, writing, storing, and transferring blobs can present a significant issue.
Currently, blobs may be conventionally stored inside a database file (e.g., the varbinary datatype of SQL Server) or inside a traditional file system. Storing and retrieving relatively large blobs inside the database may be inefficient because of extra overhead that is required to do so. Particularly, the overhead required to store blobs in the database may increase as the size of the blob increases. In SQL, the Filestream feature was created in order to avoid this extra overhead by allowing the storing of blobs in the file system, e.g. disk storage. To this end, file system blob storage may be associated with a constant overhead independent of blob size. However, while storing blobs in the file system may stabilize overhead, this overhead may nevertheless be prohibitive when storing smaller size blobs. As a result, neither technique of storing blobs may by itself present an optimal method of managing blobs in a database system.